HTTP下载文件校验失败原因分析与解决

本文分析了HTTP下载文件校验失败的原因,主要聚焦于客户端下载过程中的DNS解析、CDN节点问题以及可能存在的ISP HTTP Cache策略。通过对错误日志的深入分析,发现大部分失败源于ISP的Cache策略,将文件名与编译号结合以规避Cache问题,成功将客户端升级校验失败率降至0.5%。
摘要由CSDN通过智能技术生成


从7月中旬左右,我们客户端更新失败率由原来的2%上升到10%。更新后台数据统计显示更新失败中的90%为HTTP下载失败,具体的失败原因是文件下载完成后MD5与服务器预期的MD5不匹配。

在着手调查解决这个问题时,第一个怀疑的点是客户端下载器我希望能在代码里找到发生以下两种情况的可能性:一种是客户端在代码是否会导致文件下载不完整,另一种则是客户端的HTTP访问有没有明确禁用Http Cache。但客户端代码的Code Review表明每次Http请求都在Http头中明确启动了禁用Cache标志,对HTTP文件下载文件长度校验也吻合Http1.1的规范。

在第一次分析失败的基础上,我系统地整理了客户端从构建完成直至其被传送到最终用户机器上的全部流程,从完整的数据流路径中来分析问题的可能性。这个大的路径分天然地分成了两个独立的部分。

一是目标文件的部署过程


为了避免可能存在的cache,我们客户端的每个新版本发布,都会在cdn源站上以此版本号创建创建一个全新的目录,下载地址形式如下:

HTTP://域名/版本号

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值